<template>
  <div id="app">
    <router-view />
  </div>
</template>

<script>
export default {
  created() {
    //在页面刷新时将vuex里的state信息保存到sessionStorage里
    window.addEventListener('beforeunload', () => {
      console.log('页面将要刷新了')
      sessionStorage.setItem('state', JSON.stringify(this.$store.state))
    })
    //刷新页面时 App.vue需要被重新加载 此时判断sessionStorage中是否存在state,如果存在就把数据重新读取，并再次存入vuex中
    if (sessionStorage.getItem('state')) {
      //把sessionStorage中的数据再次存入vuex
      this.$store.replaceState(
        Object.assign(
          this.$store.state,
          JSON.parse(sessionStorage.getItem('state'))
        )
      )

      //再次调用set_menu方法 重新生成动态路由。
      this.$store.dispatch('set_menu')
    }
  },
}
</script>

<style lang="less"></style>
